package com.w7vm.menuweb.managerBean;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.faces.model.SelectItemGroup;

import com.w7vm.menuweb.utility.Constantes;
import com.w7vm.menuweb.utility.FacesUtil;


@ManagedBean
@RequestScoped
public class CardapiosOpcaoMB implements Serializable{

	private static final long serialVersionUID = 1L;

	Constantes constObj = new Constantes();

	private List<SelectItem> cardapios;
	public String tipoCardapio;
	private String nomeTelaCardapio;
	
	
	// ======= METHOD LOAD -- Page Criar-Cardapio (Buffet / LaCarte / Infantil / SelfService / Especialidade) ===========================

		public void loadPageCriarCardapio(){
				
			System.out.println("loadPageCriarCardapio()");

			// CARDAPIO G1
			if (tipoCardapio.equals(constObj.CARDAPIO_BUFFET)){
				setNomeTelaCardapio(constObj.CARDAPIO_BUFFET);
				redirecionaCardapioG1(tipoCardapio);
			}
			else if (tipoCardapio.equals(constObj.CARDAPIO_SELFSERVICE)){
				setNomeTelaCardapio(constObj.CARDAPIO_SELFSERVICE);
				redirecionaCardapioG1(tipoCardapio);
			}
			// CARDAPIO G2
			else if (tipoCardapio.equals(constObj.CARDAPIO_INFANTIL)){
				setNomeTelaCardapio(constObj.CARDAPIO_INFANTIL);
				redirecionaCardapioG2(tipoCardapio);
			}
			else if (tipoCardapio.equals(constObj.CARDAPIO_LACARTE)){
				setNomeTelaCardapio(constObj.CARDAPIO_LACARTE);
				redirecionaCardapioG2(tipoCardapio);
			}
			// CARDAPIO G3
			else if ((tipoCardapio.equals(constObj.CARDAPIO_PIZZA)) || 
					(tipoCardapio.equals(constObj.CARDAPIO_PETISCO)) ||
					(tipoCardapio.equals(constObj.CARDAPIO_SALGADO)) ||
					(tipoCardapio.equals(constObj.CARDAPIO_SOBREMESA)) ||
					(tipoCardapio.equals(constObj.CARDAPIO_LANCHE))){

				if(tipoCardapio.equals(constObj.CARDAPIO_PIZZA)){
					setNomeTelaCardapio(constObj.CARDAPIO_PIZZA);
					redirecionaCardapioG3();
				}
				else if(tipoCardapio.equals(constObj.CARDAPIO_PETISCO)){
					setNomeTelaCardapio(constObj.CARDAPIO_PETISCO);
					redirecionaCardapioG3();
				} 
				else if(tipoCardapio.equals(constObj.CARDAPIO_LANCHE)){
					setNomeTelaCardapio(constObj.CARDAPIO_LANCHE);
					redirecionaCardapioG3();
				}
				else if(tipoCardapio.equals(constObj.CARDAPIO_SALGADO)){
					setNomeTelaCardapio(constObj.CARDAPIO_SALGADO);
					redirecionaCardapioG3();
				} 
				else if(tipoCardapio.equals(constObj.CARDAPIO_SOBREMESA)){
					setNomeTelaCardapio(constObj.CARDAPIO_SOBREMESA);
					redirecionaCardapioG3();
				} 

			}

		}
		
	// ======= METHOD REDIRECT -- ===========================
		
		// CardapioG1 : Buffet | SelfService
		public void redirecionaCardapioG1(String tipo){
			try {
				if(tipo.equals(constObj.CARDAPIO_BUFFET)){
					FacesUtil.setApplicationMapValue("CardapioOpcaoMB.value", constObj.CARDAPIO_BUFFET);
					FacesContext.getCurrentInstance().getExternalContext().redirect("../../user/cardapio/cardapioG1/cadCardapioG1.jsf");
				}
				else if(tipo.equals(constObj.CARDAPIO_SELFSERVICE)){
					FacesUtil.setApplicationMapValue("CardapioOpcaoMB.value", constObj.CARDAPIO_SELFSERVICE);
					FacesContext.getCurrentInstance().getExternalContext().redirect("../../user/cardapio/cardapioG1/cadCardapioG1.jsf");
				}
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		// CardapioG2 : LaCarte | Infantil
		public void redirecionaCardapioG2(String tipo){
			try {
				if(tipo.equals(constObj.CARDAPIO_INFANTIL)){
					FacesUtil.setApplicationMapValue("CardapioOpcaoMB.value", constObj.CARDAPIO_INFANTIL);
					FacesContext.getCurrentInstance().getExternalContext().redirect("../../user/cardapio/cardapioG2/cadCardapioG2.jsf");
				}
				else if(tipo.equals(constObj.CARDAPIO_LACARTE)){
					FacesUtil.setApplicationMapValue("CardapioOpcaoMB.value", constObj.CARDAPIO_LACARTE);
					FacesContext.getCurrentInstance().getExternalContext().redirect("../../user/cardapio/cardapioG2/cadCardapioG2.jsf");
				}
				
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		// CardapioG3 : Especialidade
		public void redirecionaCardapioG3(){
			try {
				FacesUtil.setApplicationMapValue("CardapioOpcaoMB.value", getNomeTelaCardapio());
				System.out.println("getNomeTelaCardapio()>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+ getNomeTelaCardapio());
				FacesContext.getCurrentInstance().getExternalContext().redirect("../../user/cardapio/cardapioG3/cadCardapioG3.jsf");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		// Redireciona Portal Home
		public void redirecionaPaginaPortal(){
			try {
				FacesContext.getCurrentInstance().getExternalContext().redirect("../../user/portalCardapioMundo.jsf");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}



// ======= METHOD LOAD -- MENU Tipo Cardapio (Buffet / LaCarte / Infantil / SelfService / Especialidade) ===========================

		public void loadMenuTipoCardapios(){
			
			SelectItemGroup g1 = new SelectItemGroup("Cardápio Tradicional");
	        g1.setSelectItems(new SelectItem[] {
	        				 new SelectItem(constObj.CARDAPIO_BUFFET, constObj.CARDAPIO_BUFFET), 
	        				 new SelectItem(constObj.CARDAPIO_LACARTE, constObj.CARDAPIO_LACARTE), 
	        				 new SelectItem(constObj.CARDAPIO_SELFSERVICE, constObj.CARDAPIO_SELFSERVICE)});

	        SelectItemGroup g2 = new SelectItemGroup("Cardápio Género");
	        g2.setSelectItems(new SelectItem[] {
					 new SelectItem(constObj.CARDAPIO_INFANTIL, constObj.CARDAPIO_INFANTIL)});

	        SelectItemGroup g3 = new SelectItemGroup("Cardápio Especializado");
	        g3.setSelectItems(new SelectItem[] {
					 new SelectItem(constObj.CARDAPIO_PIZZA, constObj.CARDAPIO_PIZZA), 
					 new SelectItem(constObj.CARDAPIO_PETISCO, constObj.CARDAPIO_PETISCO), 
					 new SelectItem(constObj.CARDAPIO_LANCHE, constObj.CARDAPIO_LANCHE),
					 new SelectItem(constObj.CARDAPIO_SALGADO, constObj.CARDAPIO_SALGADO),
	        		 new SelectItem(constObj.CARDAPIO_SOBREMESA, constObj.CARDAPIO_SOBREMESA)});
			
	        cardapios = new ArrayList<SelectItem>();
	        cardapios.add(g1);
	        cardapios.add(g2);
	        cardapios.add(g3);
	        
		}

		public String getNomeTelaCardapio() {
			return nomeTelaCardapio;
		}

		public void setNomeTelaCardapio(String nomeTelaCardapio) {
			this.nomeTelaCardapio = nomeTelaCardapio;
		}

		public List<SelectItem> getCardapios() {
			loadMenuTipoCardapios();
			return cardapios;
		}

		public void setCardapios(List<SelectItem> cardapios) {
			this.cardapios = cardapios;
		}

		public String getTipoCardapio() {
			return tipoCardapio;
		}

		public void setTipoCardapio(String tipoCardapio) {
			this.tipoCardapio = tipoCardapio;
		}
		
		
		


}
